Any plug-in or extensions, to existing Software modules which utilizes Groovy or any another programming language, and is created by Navis, Customer, or a third party is considered a modification or enhancement of the Software as such terms are used in the Navis Purchase and License Agreement. In addition, all such customizations or modifications made to the N4 Software through use of Groovy or any another programming language will not be supported under Maintenance and Support services. Customer may retain Navis Services to assist in the maintenance and support of such code at the then current time and materials rates.
Starting N4 2.0, a new module called the "Code Extension Framework" has been added to standardize groovy usage within the product.
Note the term "Code Extension" in the documentation is used instead of "groovy" as the new framework is designed with groovy as just one of the extension possibilities. The framework may support other languages such as java in the future.
Currently, N4 contains two separate systems for defining groovy and custom code. In subsequent versions, all legacy groovy will be eventually migrated to this new system. However in intermediate versions, users may need to know the differences in both systems.
The below table summarizes the current differences between the two systems which will eventually be merged.
|
New Code Extension Framework |
Existing Groovy |
---|---|---|
UI for Defining UI |
Extension Type Registry, Code Extensions |
Groovy Plug-ins |
UI for Trigger Mapping |
Extension Trigger Mapping |
Gate BizTasks screen Notices screen Many of the groovy is mapped implicitly by name, i.e. groovy hooks such as RdtCustomGroovyImpl are named specifically |
Disable Switch |
3 level settings, see Debugging |
DISABLE_GROOVY_EXECUTION |
Logging |
Performance and error logging, see Debugging |
Performance and error logging |
Error Handling |
Errors marked specifically as coming from custom code, or execution failure of custom code. |
|
Code Structure |
Explicit java interface and sometimes abstract class as listed in the Extension Type Registry |
Implied methods as documented in groovy hooks |
Documentation |
|
|